package 网络编程.UDP协议.组播;

import java.io.IOException;
import java.net.*;

public class 组播接收数据 {
    public static void main(String[] args) throws IOException {
        //1.创建接收数据的DatagramSocket对象.
        MulticastSocket ms = new MulticastSocket(10000);

        //2.将本机的ip地址添加到,添加到224.0.0.1的组播中
        InetAddress a=InetAddress.getByName("224.0.0.2");
        ms.joinGroup(a);


        //2.发送数据
        //创建接收数据的数组
        byte[] bytes=new byte[1024];
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);


        //3.发送数据
        ms.receive(dp);

        //4.解析数据包
        byte[] data= dp.getData();
        //获取发送的数据的相关信息
        int len = dp.getLength();
        String ip = dp.getAddress().getHostAddress();
        String name = dp.getAddress().getHostName();
        System.out.println("IP:"+ip+"主机名为:"+name+",的人发送了数据"+new String(data,0,len));

        //5.释放资源
        ms.close();
    }
}
